package cn.hg.solon.youcan.framework.service;

import java.util.List;

/**
 * @author 胡高
 */
public interface CacheService {

    /**
     * 清空缓存
     */
    void clearAll();

    /**
     * 清除指定缓存名下的指定缓存键
     * 
     * @param cacheName
     *            缓存名
     * @param cacheKey
     *            缓存键
     */
    void clearCacheKey(String cacheName, String cacheKey);

    /**
     * 清除多个缓存
     * 
     * @param cacheNames
     *            缓存名
     */
    void clearCacheNames(String... cacheNames);

    /**
     * 获取指定缓存名下所有的缓存键
     * 
     * @param cacheName
     *            缓存名
     * @return 缓存键列表
     */
    List<?> getCacheKeys(String cacheName);

    /**
     * 获取所有缓存名
     * 
     * @return 缓存名
     */
    List<?> getCacheNames();

    /**
     * 获取指定缓存名、缓存键下的缓存值
     * 
     * @param cacheName
     *            缓存名
     * @param cacheKey
     *            缓存键
     * @return 缓存值
     */
    Object getCacheValue(String cacheName, String cacheKey);

}
